import { createRouter, createWebHistory } from 'vue-router';
import routes from './routes';
import { getToken } from '../utils/storage';

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes
});

// 全局前置守卫：检查登录状态
router.beforeEach((to, _, next) => {
  const requiresAuth = to.meta.requiresAuth !== false; // 默认需要登录
  const hasToken = !!getToken();

  if (requiresAuth && !hasToken) {
    // 需要登录但未登录，跳转登录页
    next('/login');
  } else if (!requiresAuth && hasToken && to.path === '/login') {
    // 已登录却访问登录页，跳转首页
    next('/');
  } else {
    // 其他情况正常跳转
    next();
  }
});

// 全局后置守卫：路由切换完成后执行
router.afterEach((to) => {
  // 1. 获取当前路由的 title（优先取子路由，没有则取父路由）
  const pageTitle = to.meta.title || to.matched[0]?.meta.title;
  
  // 2. 动态修改页面 title（可加系统名前缀，避免 title 太简洁）
  if (pageTitle) {
    document.title = `${pageTitle} - 行规管理系统`; 
    // 示例：登录页最终 title 是 "登录系统 - 学校积分管理系统"，首页是 "欢迎使用 - 学校积分管理系统"
    // 若不需要前缀，直接写 document.title = pageTitle;
  }
});

export default router;